# 单引号，双引号，三个单引号都可以表示字符串

x = 'you say :"my name is xiaoming"'
print('x', x)
y = "you say :'my name is xiaoming'"
print('y', y)
z = '''you say :"my name is xiaoming"'''
print('z', z)
# r 原样输出
h = r'you say :"my name is xiaoming"'
print('h', h)

a = 'abcdefghijklmnl'
# 字符串下标
print(a[3])

# 对于字符串的任何操作都不会改变原有的字符串,强制改变只会报错
# a[3] ='a'
# print(a)

# 字符串切片 s[start:end:step]  包含start,不包含end,每隔step-1 个取一次,step不能是0，负数表示倒序

print(a[1:2])
print(a[:3])
print(a[5:])
print(a[1::2])
print(a[:3:-1])
# start或者end负数表示取值时方向从右往左
print(a[-3:-1])

print(len(a))
# 查找 find/index/rfind/rindex 获取指定字符的下标

# 找不到对应的索引值,find 返回-1，index 报错
print(a.find('l'))
print(a.find('l', 1, 4))
print(a.index('l'))
# 倒序查找
print(a.rfind('l'))
print(a.rindex('l'))

# startwith,endwith,isalpha,isdigit,isalnum,isspace
print('abc'.isalpha())
# 数字，小数点不算
print('3.14'.isdigit())
print('ab32'.isalnum())
print(' '.isspace())

# 注意，原来的字符串a并不会改变
b = a.replace('l', 'x')
print(a, b)

c = 'abc-efg-hij-k-lmn'
# 返回列表
print(c.split('-'))
print(c.rsplit('-'))

print(c.split('-', 2))
print(c.rsplit('-', 2))

# 返回元组
file_name = "2015.9.10录制的视频.mp4"
print(file_name.partition('.'))
print(file_name.rpartition('.')[0])

# 首字母大写
print(c.capitalize())

print(c.upper())
print(c.lower())

# 每个单词首字母大写
print(c.title())

# 字符串长度不够，补齐,默认是空格补齐
print("left".ljust(10))
print("left".ljust(10, '-'))
print("right".rjust(10))
print("right".rjust(10, '='))
print('center'.center(10))
print('center'.center(11, '*'))

# 去掉空格

d = '    你     好       '
print(d.lstrip())
print(d.rstrip())
print(d.strip())

# 列表转为字符串
e = ['a', 'b', 'c']
print("#".join(e))

# 字符串支持 + * == != 比较运算符

# 获取字符对应的编码
print(ord('a'))

# 获取编码对应的字符
print(chr(65))

# in/not in 判断一个内容在可迭代对象中是否存在
print(('he' in 'hello'))

# 字符串格式化
print('我叫%s,今年%d岁' % ('小明', 18))
print('我的编号是%03d' % 5)

# format字符串格式化
# 对应填充
print('我叫{},今年{}岁'.format('小明', 18))
# 序号填充
print('我叫{1},今年{0}岁'.format(18, '小明'))
# 命名填充
print('我叫{name},今年{age}岁'.format(age=18, name='小明'))
# 混合使用,命名的必须放在最后
print('我叫{},今年{age}岁'.format('小明', age=18))
# 列表和字典填充
list = ['小明', 18]
dict = {'age': 18, 'name': '小明'}
print('我叫{},今年{}岁'.format(*list))
print('我叫{name},今年{age}岁'.format(**dict))
